#ifndef THREADPOOL_H
#define THREADPOOL_H
#include <header.h>
#include "Queue.h"
#include "HashMap.h"

typedef struct pool_s{
    // 用来保存线程id
    pthread_t *list;
    // 用来记录线程池中线程个数
    int num;
    // 任务队列，存net_fd
    queue_t queue;

    // 锁和条件变量
    pthread_mutex_t lock;
    pthread_cond_t cond;

    // 0运行，1退出
    int exitFlag;

    /* 数据库连接锁 */
    pthread_mutex_t connlock;

    /* 哈希表锁 */
    pthread_mutex_t hashlock;

}pool_t;

/* 初始化信息，创建线程池 */
int initPool(pool_t *pool, int num);


/* 子线程入口函数 */
void* threadMain();

#endif // !THREADPOOL_H


